﻿using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace MyRoguelike.Screens.Manager
{
    abstract class Screen
    {
        /// <summary>
        /// Initialize screen
        /// </summary>
        public abstract void Initialize();

        /// <summary>
        /// Load content
        /// </summary>
        public abstract void LoadContent();

        /// <summary>
        /// Update screen
        /// </summary>
        /// <param name="gameTime">GameTime</param>
        public abstract void Update(GameTime gameTime);

        /// <summary>
        /// Draw screen
        /// </summary>
        /// <param name="spriteBatch">SpriteBatch</param>
        public abstract void Draw(SpriteBatch spriteBatch);

        /// <summary>
        /// Unload content
        /// </summary>
        public abstract void UnloadContent();

        /// <summary>
        /// Shutdown screen
        /// </summary>
        public abstract void Shutdown();
    }
}
